import { IPSSysSFPlugin } from '../res/ipssys-sfplugin';
import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSSysRef
 */
export interface IPSSysRef extends IPSModelObject {
  /**
   * 后台扩展插件
   *
   * @type {IPSSysSFPlugin}
   */
  getPSSysSFPlugin(): IPSSysSFPlugin | null;

  /**
   * 后台扩展插件
   *
   * @type {IPSSysSFPlugin}
   */
  get psSysSFPlugin(): IPSSysSFPlugin | null;

  /**
   * 后台扩展插件（必须存在）
   *
   * @type {IPSSysSFPlugin}
   */
  getPSSysSFPluginMust(): IPSSysSFPlugin;

  /**
   * 引用参数
   * @type {string}
   */
  refParam: string;

  /**
   * 引用参数2
   * @type {string}
   */
  refParam2: string;

  /**
   * 引用参数集合
   * @type {IModel}
   */
  refParams: IModel;

  /**
   * 引用服务标识
   * @type {string}
   */
  refServiceId: string;

  /**
   * 系统代码标识
   * @type {string}
   */
  sysCodeName: string;

  /**
   * 系统名称
   * @type {string}
   */
  sysName: string;

  /**
   * 系统包名称
   * @type {string}
   */
  sysPkgName: string;

  /**
   * 引用系统标记
   * @type {string}
   */
  sysRefTag: string;

  /**
   * 引用系统类型
   * @description 值模式 [云平台系统引用类型] {SUBSYS：平台子系统、 DEVSYS：开发系统组件、 DEVSYSCLOUD：开发系统云服务、 CLOUDHUBSUBAPP：Cloud集成子应用、 ETLEXTRACT：ETL展开逻辑、 ETLTRANSFORM：ETL转换逻辑、 ETLLOAD：ETL加载逻辑、 ETLSOURCE：ETL数据源（模型同步）、 ETLMODEL：ETL模型（模型同步）、 USER：用户自定义、 USER2：用户自定义2、 USER3：用户自定义3、 USER4：用户自定义4 }
   * @type {( string | 'SUBSYS' | 'DEVSYS' | 'DEVSYSCLOUD' | 'CLOUDHUBSUBAPP' | 'ETLEXTRACT' | 'ETLTRANSFORM' | 'ETLLOAD' | 'ETLSOURCE' | 'ETLMODEL' | 'USER' | 'USER2' | 'USER3' | 'USER4')}
   */
  sysRefType: string | 'SUBSYS' | 'DEVSYS' | 'DEVSYSCLOUD' | 'CLOUDHUBSUBAPP' | 'ETLEXTRACT' | 'ETLTRANSFORM' | 'ETLLOAD' | 'ETLSOURCE' | 'ETLMODEL' | 'USER' | 'USER2' | 'USER3' | 'USER4';

  /**
   * 系统服务发布名称
   * @type {string}
   */
  sysSrvCodeName: string;

  /**
   * 系统版本名称
   * @type {string}
   */
  sysVCName: string;
}
